package com.stellar.auth.basic.po;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * (AuthUserPO) 与redis交互使用
 *
 * @author Jqchan
 * @since 2025-05-16
 */
@Data
public class AuthUserPO implements Serializable {
    private static final long serialVersionUID = 541321107087079853L;

    /**
     * 用户ID
     * (数据库字段: id)
     */
    private Long id;

    /**
     * 用户类型：wechat-微信用户/anonymous-匿名用户
     * (数据库字段: user_type)
     */
    private String userType;

    /**
     * 微信用户唯一标识（OpenID）
     * (数据库字段: openid)
     */
    private String openid;

    /**
     * 微信昵称
     * (数据库字段: nick_name)
     */
    private String nickName;

    /**
     * 微信头像URL
     * (数据库字段: avatar)
     */
    private String avatar;

    /**
     * 绑定的学校ID
     * (数据库字段: school_id)
     */
    private Long schoolId;

    /**
     * 学号
     * (数据库字段: student_id)
     */
    private String studentId;

    /**
     * 邮箱
     * (数据库字段: email)
     */
    private String email;

    /**
     * 系统默认马甲头像URL
     * (数据库字段: default_avatar)
     */
    private String defaultAvatar;

    /**
     * 系统默认昵称
     * (数据库字段: default_nick_name)
     */
    private String defaultNickName;

    /**
     * 性别 1-男 2-女
     * (数据库字段: sex)
     */
    private Integer sex;

    /**
     * 手机号
     * (数据库字段: phone)
     */
    private String phone;

    /**
     * 年级
     * (数据库字段: grade)
     */
    private String grade;

    /**
     * 用户状态：normal-正常/banned-封禁
     * (数据库字段: user_status)
     */
    private String userStatus;

    /**
     * 最后登录时间
     * (数据库字段: last_login_time)
     */
    private Date lastLoginTime;

    /**
     * 最后登录IP
     * (数据库字段: last_ip)
     */
    private String lastIp;

    /**
     * 累计登录次数
     * (数据库字段: login_count)
     */
    private Integer loginCount;

    /**
     * 角色标识
     */
    private List<String> roleKeys;

}
